#pragma once

#include "AESUtils.h"
#include "IKeyManifest.h"
#include "IAESEngine.h"

#include <map>
#include <string>

using namespace std;

class KeyManifest : public IKeyManifest
{
public:
	KeyManifest(void);
	virtual ~KeyManifest(void);

// IKeyManifest public interface
public:
	int getEngine(IAESEngine **engine);

	// Given a key alias, returns a Key type
	int getKey(const char* keyLabel, IAESKey **key);

private:
	bool validateState(void);

private:
	IAESEngine*	_engine;	
};
